package com.tangcco.lockwell.domain;

import java.io.Serializable;
import java.util.List;


/**
 * 群组用户关系实体类
 * @author 李金昭
 * 用于映射数据库中的groups_relationship表
 *
 */
public class GroupsRelationship implements Serializable {

    private static final long serialVersionUID = -600292752430377095L;

    // 主键，唯一标识每条群组用户关系记录，对应数据库表中的自增主键id字段
    private Integer id;
    // 群组的唯一标识，通过外键关联到群组表（group）的id字段，用于确定所属群组，对应数据库表中的group_id字段
    private Integer groupId;
    // 用户的唯一标识，通过外键关联到用户信息表（userinfo）的id字段，用于确定具体用户，对应数据库表中的user_id字段
    private Integer userId;
    // 用户在群组中的身份类型，通过外键关联到数据字典表（dictionary_table）的相应字段来确定具体身份（如创建者、组员等），对应数据库表中的user_type字段
    private Integer userType;
    // 表示用户在群组中的状态，例如正常、退出等情况，对应数据库表中的status字段
    private Integer status;
    // 用户加入群组的时间，对应数据库表中的useradd_time字段
    private String useraddTime;
    // 用户在群组中相关信息的权限设置，例如学习进度是私密还是公开等情况，对应数据库表中的permission字段
    private Integer permission;

    private List<Integer> userAllIds;

    public List<Integer> getUserAllIds() {
        return userAllIds;
    }

    public void setUserAllIds(List<Integer> userAllIds) {
        this.userAllIds = userAllIds;
    }

    public GroupsRelationship() {
    }

    public GroupsRelationship(Integer id, Integer groupId, Integer userId, Integer userType, Integer status, String useraddTime, Integer permission) {
        this.id = id;
        this.groupId = groupId;
        this.userId = userId;
        this.userType = userType;
        this.status = status;
        this.useraddTime = useraddTime;
        this.permission = permission;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getGroupId() {
        return groupId;
    }

    public void setGroupId(Integer groupId) {
        this.groupId = groupId;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public Integer getUserType() {
        return userType;
    }

    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getUseraddTime() {
        return useraddTime;
    }

    public void setUseraddTime(String useraddTime) {
        this.useraddTime = useraddTime;
    }

    public Integer getPermission() {
        return permission;
    }

    public void setPermission(Integer permission) {
        this.permission = permission;
    }

    @Override
    public String toString() {
        return "GroupsRelationship{" +
                "id=" + id +
                ", groupId=" + groupId +
                ", userId=" + userId +
                ", userType=" + userType +
                ", status=" + status +
                ", useraddTime=" + useraddTime +
                ", permission=" + permission +
                '}';
    }
}
